package controllers;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

import Tools.ConfigHelper;
import models.Actions;
import models.Article;
import models.User;

public class ArticleAdmin extends Application{
	/**
	 * index为主界面，一般来说搜索分页可以写在list()中，但是我这边全部写在一个Action里面了，好处是前端界面就不需要使用iframe标签
	 * 坏处是刷新界面后台处理的东西多了，这个可以根据自己的实际情况进行修改
	 * 
	 * @param searchType 搜索条件类型（可以通过反射动态的读取POJO的变量，这里我没有做动态的优化）
	 * @param searchCondition 搜索条件（HQL里面使用了'LIKE %${searchCondition}%'的方法筛选）
	 * @param length 当前的页码
	 * @since 1.0
	 * @author Mr.J.
	 * **/
	public static void index(String dateStart, String dateEnd, String searchType, String searchCondition, String length){
	    User user = getCurrutUser();
	    List<Actions> menus = user.actions;
        List<Article> arts = null;
        /**帮助处理字符串传递过来的参数转化*/
        if(searchType == null) searchType = "";
        if(searchCondition == null) searchCondition = "";
        if(searchType.equals("null")) searchType = "";
        if(searchCondition.equals("null")) searchCondition = "";
        /**总页数*/
        int totalPage = 0;
        /**总记录数*/
        int tmpSum = 0;
        if(!searchType.equals("") && !searchCondition.equals("")){
            arts = Article.find(searchType + " LIKE '%" + searchCondition + "%'").
                    fetch(Integer.valueOf((length == null ? "1" : length)),20);
            /**这里我没有进行优化，因为这样写搜索了2次数据库，如果想要优化可以自行修改*/
            tmpSum = Article.find(searchType + " LIKE '%" + searchCondition + "%'").fetch().size();
        }
        else{
            arts = Article.find("").fetch(Integer.valueOf((length == null ? "1" : length)),20);
            /**这里我没有进行优化，因为这样写搜索了2次数据库，如果想要优化可以自行修改*/
            tmpSum = Article.findAll().size();
        }
	    totalPage = tmpSum/20 + (tmpSum % 20 == 0 ? 0 : 1);
        render(user, menus, arts, totalPage, searchType, searchCondition, length);
	}
	
	public static void edit(String id){
		Article art = Article.findById(Long.valueOf(id));
		render(art);
	}
	
    public static void delete(String id){
        Article art = Article.findById(Long.valueOf(id));
        art.delete();
    }
    
}
